<?php

/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */

/**
 * This file is part of Onlogistics, a web based ERP and supply chain 
 * management application. 
 *
 * Copyright (C) 2003-2008 ATEOR
 *
 * This program is free software: you can redistribute it and/or modify it 
 * under the terms of the GNU Affero General Public License as published by 
 * the Free Software Foundation, either version 3 of the License, or (at your 
 * option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT 
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public 
 * License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 * PHP version 5.1.0+
 *
 * @package   Onlogistics
 * @author    ATEOR dev team <dev@ateor.com>
 * @copyright 2003-2008 ATEOR <contact@ateor.com> 
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU AGPL
 * @version   SVN: $Id: Zone.php 9 2008-06-06 09:12:09Z izimobil $
 * @link      http://www.onlogistics.org
 * @link      http://onlogistics.googlecode.com
 * @since     File available since release 0.1.0
 * @filesource
 */

class Zone extends _Zone {
    // Constructeur {{{

    /**
     * Zone::__construct()
     * Constructeur
     *
     * @access public
     * @return void
     */
    public function __construct() {
        parent::__construct();
    }

    // }}}
    // Zone::getActorCollection() {{{

    /**
     * Retourne la collection des Actors lies via Site.
     * A comparer avec Invoice.CommandType
     * @param mixed $filter
     * @access public
     * @return array
     */
    public function getActorCollection($filter=false) {
        $siteCol = $this->getSiteCollection(array(), array(), array('Owner'));
        $actorColl = new Collection();
        $actorColl->acceptDuplicate = false;
        $scount = $siteCol->getCount();
        for($i = 0; $i < $scount; $i++) {
            $actor = $siteCol->getItem($i)->getOwner();
            if (!Tools::isEmptyObject($actor)) {
                $actorColl->setItem($actor);
            }
        }
        if ($actorColl->getCount() == 0 || !$filter) {
            return $actorColl;
        }
        $idFilter = array('Id' => $actorColl->getItemIds());
        if ($filter instanceof FilterComponent) {
            $filter = SearchTools::buildFilterFromArray($idFilter, $filter);
        } else {
            $filter = array_merge($idFilter, $filter);
        }

        $actorColl = Object::loadCollection('Actor', $filter);
        return $actorColl;
    }

    // }}}

}

?>